home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 23 / AMIGAplus Sonderheft 23 (2000)(Falke)(DE)[!].iso / Tools / Text-Viewer / Notes / english / Notes.pprx < prev    next >
Text File  |  1999-11-06  |  19KB  |  696 lines

  1. /*
  2. @B Notes V. 1.2 @P@ICopyright A.Faust 1999
  3.  This Genie prints notes
  4. */
  5.  
  6. /* History
  7.  
  8.     Version 1.0 (January 1999)
  9.     - first release
  10.  
  11.     Version 1.1. (2.2.99)
  12.     -some errors removed in the #?.files
  13.     -notationsrule for the "notefiles" altered
  14.      (in the case of - "n" - natural sign
  15.       like the other in one line)
  16.  
  17.     Version 1.2  (10.2.99)
  18.     -removed a error if givein is a b-accidental (example:"AB3")
  19.     -simplified the routine for accidentals
  20.     -added the possibility of writing single notelines with one
  21.      notekey
  22.     -multiple questions at the beginning collected in one requester
  23.     -expanded the range of the violinkey
  24. */
  25.  
  26.  
  27. address command
  28.  
  29. 'execute C:AssignNotenDruck'
  30.  
  31.  
  32. /*
  33.    The file "AssignNotePrint" in the C: directory shall be written
  34.    with a normal texteditor, like ed or AE(Articel Editor from ProPage).
  35.    There will be assigned where the Genie looks for the Notefiles.
  36.    Also will be assigned the directory, where are the genies from ProPage
  37.    are placed.
  38.  
  39.    example:
  40.    assign Notes:   Work:MyNoteFileDirectory
  41.    assign Genies:  DTP:ProPage/ARexx
  42.                    |_______________________|
  43.  
  44.                    please insert your paths here
  45.  
  46. */
  47.  
  48. call SafeEndEdit.rexx()
  49. call ppm_AutoUpdate(0)
  50. call ppm_SetWireframe(0)
  51. notex=0
  52. notey=0
  53. call ppm_SetLineWeight(0.25)
  54. call ppm_SetMagMode(300)
  55. call ppm_SetBoxOutlines(0)
  56.  
  57. signal on halt
  58. signal on break_c
  59. signal on break_e
  60. signal on break_d
  61.  
  62.  
  63. start:
  64. do
  65.   neu = ppm_GetUserText(2, "New begin? (ALL WILL BE DELETED !!!!) Nothing=Break y/n")
  66.     if neu == "Y" then neu = "y"
  67.     if neu == "N" then neu = "n"
  68.  
  69.   select
  70.     when neu == "y" then
  71.         do
  72.         sicher =
  73.         call ppm_New()
  74.         call ppm_SetUnits(2)
  75.         call ppm_SetMagMode(200)
  76.         call ppm_SetFont('(CG)Times')
  77.         pgnm = ppm_CreatePage(1, 1, 0)
  78.         call ppm_SetPageType(pgnm, 4)
  79.         call ppm_SetRulerType(4)
  80.         call ppm_SetBoxLock(0, 0)
  81.         call ppm_DeleteBox(0)
  82.  
  83.         /* Headline */
  84.  
  85.         haedln = ppm_CreateBox(4, 0.2, 11.5, 1.2, 0)
  86.         call ppm_SetSize(20)
  87.         call ppm_SetStyle(U)
  88.         call ppm_SetJustification(2)
  89.         call ppm_TextIntoBox(haedln, 'Title')
  90.         end
  91.     when neu == "n" then notenlinien()
  92.     otherwise exit_msg("User Break!")
  93.   end
  94.  
  95. notenlinien:
  96.   cr = '0a'x
  97.   form = "notelines ?    (y/n):y"cr"2/1 system (2/1v/1b):2"cr"accidentals (1#=1 #):"cr"time       (4/4=4 4):4 4"cr"v_iol/b_ass  [f_ile]:v"
  98.   eingabe = ppm_GetForm("Please give in ...          ", 5, form)
  99.   parse var eingabe res '0a'x systemart '0a'x vorz '0a'x takt '0a'x violbass
  100.   if systemart == '1B' then systemart = '1b'
  101.   if systemart == '1V' then systemart = '1v'
  102.   if res == '' then res = 'y'
  103.   if res == 'J' then res = 'y'
  104.   if res == 'y' then
  105.   do
  106.  
  107.         call ppm_SetUnits(2)
  108.         call ppm_SetMagMode(200)
  109.         call ppm_SetFont('(CG)Times')
  110.         pgnm = ppm_CurrentPage()
  111.         call ppm_SetPageType(pgnm, 4)
  112.         call ppm_SetRulerType(4)
  113.         call ppm_SetBoxLock(0, 0)
  114.         call ppm_DeleteBox(0)
  115.  
  116.         /* headline */
  117.  
  118.         haedln = ppm_CreateBox(4, 0.2, 11.5, 1.2, 0)
  119.         call ppm_SetSize(20)
  120.         call ppm_SetStyle(U)
  121.         call ppm_SetJustification(2)
  122.         call ppm_TextIntoBox(haedln, 'Title')
  123.  
  124.         /* Autor */
  125.  
  126.         autor = ppm_CreateBox(13, 0.9, 6.5, 0.64, 0)
  127.         call ppm_SetSize(12)
  128.         call ppm_SetStyle(U)
  129.         call ppm_SetJustification(1)
  130.         call ppm_TextIntoBox(autor, "Autor: © Noname")
  131.  
  132.  
  133.      /* Draw notelines */
  134.  
  135.      do a=1 to 12
  136.        do b=1 to 5
  137.           call ppm_DrawLine(0, a*2+((b-1)/5), 19.5, a*2+((b-1)/5))
  138.        end
  139.      end
  140.  
  141.      /* Notekey and bracket at front */
  142.  
  143.      if systemart == '1v' then
  144.      do
  145.         call ppm_SetFont('(CG)Noten')
  146.  
  147.         violschl = ppm_CreateBox(0, 1.55, 1, 1.6, 0)
  148.         call ppm_SetStyle(N)
  149.         call ppm_SetJustification(0)
  150.         call ppm_SetSize(45)
  151.         call ppm_TextIntoBox(violschl, 't')
  152.  
  153.         do c=1 to 11
  154.           call ppm_CloneBox(violschl, 0, (c*2))
  155.         end
  156.      end
  157.  
  158.      if systemart == '1b' then
  159.      do
  160.         call ppm_SetFont('(CG)Noten')
  161.  
  162.         bassschl = ppm_CreateBox(0.034, 1.88, 1.1, 1.1, 0)
  163.         call ppm_SetStyle(N)
  164.         call ppm_SetJustification(0)
  165.         call ppm_SetSize(30)
  166.         call ppm_TextIntoBox(bassschl, 'b')
  167.  
  168.         do c=1 to 11
  169.           call ppm_CloneBox(bassschl, 0, (c*2))
  170.         end
  171.      end
  172.  
  173.      if systemart == '2' then
  174.      do
  175.         call ppm_SetFont('(CG)Noten')
  176.  
  177.         violschl = ppm_CreateBox(0, 1.55, 1, 1.6, 0)
  178.         call ppm_SetStyle(N)
  179.         call ppm_SetJustification(0)
  180.         call ppm_SetSize(45)
  181.         call ppm_TextIntoBox(violschl, 't')
  182.  
  183.         bassschl = ppm_CreateBox(0.034, 3.88, 1.1, 1.1, 0)
  184.         call ppm_SetSize(30)
  185.         call ppm_TextIntoBox(bassschl, 'b')
  186.  
  187.         call ppm_SetLineWeight(4)
  188.         vl = ppm_DrawLine(0, 1.98, 0, 4.82)
  189.  
  190.         call ppm_SetLineWeight(2)
  191.         vo = ppm_DrawLine(-0.07, 2.08, 0.303, 1.7627)
  192.         vu = ppm_DrawLine(-0.07, 4.74, 0.303, 5.052)
  193.  
  194.         do c=1 to 5
  195.           call ppm_CloneBox(violschl, 0, (c*4))
  196.           call ppm_CloneBox(bassschl, 0, (c*4))
  197.           call ppm_CloneBox(vl, 0, (c*4))
  198.           call ppm_CloneBox(vo, 0, (c*4))
  199.           call ppm_CloneBox(vu, 0, (c*4))
  200.         end
  201.      end
  202.      vorzeichen()
  203.   end
  204.   else
  205.   do
  206.    if res == 'N' then res = 'n'
  207.    if res == 'n' then vorzeichen()
  208.    else start()
  209.   end
  210. end
  211.  
  212. noteneingabe:
  213.  if violbass == '' then notenlinien()
  214.  resa = word(violbass,1)
  215.  resb = word(violbass,2)
  216.  if resa=='V' then resa = 'v'
  217.  if resa=='B' then resa = 'b'
  218.  if resb=='F' then resb = 'f'
  219.  select
  220.    when resa=='v' then violschl()
  221.    when resa=='b' then basschl()
  222.    otherwise noteneingabe()
  223.  end
  224.  
  225. violschl:
  226.  do
  227.  call ppm_SetFont('(CG)Noten')
  228.  select
  229.     when resb='' then
  230.     do
  231.      address command
  232.      rx 'Genies:Violinkey.rexx'
  233.     end
  234.     when resb='f' then
  235.     do
  236.      address command
  237.      rx 'Genies:Violinkey.file'
  238.     end
  239.     otherwise noteneingabe()
  240.  end
  241.  exit
  242.  end
  243.  
  244. basschl:
  245.  do
  246.  call ppm_SetFont('(CG)Noten')
  247.  select
  248.     when resb='' then
  249.     do
  250.      address command
  251.      rx 'Genies:Basskey.rexx'
  252.     end
  253.     when resb='f' then
  254.     do
  255.      address command
  256.      rx 'Genies:Basskey.file'
  257.     end
  258.     otherwise noteneingabe()
  259.  end
  260.  exit
  261.  end
  262.  
  263. exit
  264.  
  265. vorzeichen:
  266.  
  267. if vorz == "" then
  268. do
  269.   k = 0
  270.   takt()
  271. end
  272.  
  273. else
  274. do
  275.    call ppm_SetFont('(CG)Noten')
  276.    call ppm_SetSize(20)
  277.    zahl = word(vorz, 1)
  278.    if zahl >6 then vorzeichen()
  279.    art  = word(vorz, 2)
  280.    if art == 'B' then art = 'b'
  281.    yy = 0.28
  282.    j = 0
  283.    k = zahl
  284.  select
  285.    when art == 'b' then
  286.    do
  287.    art = 'f'
  288.       if systemart == '2' then
  289.       do
  290.         do i=1 to 6
  291.            if zahl== 1 then
  292.              do
  293.                call vorzeichenbox 1, (1.95+j)
  294.                call vorzeichenbox 1, (4.15+j)
  295.              end
  296.  
  297.            if zahl == 2 then
  298.              do
  299.                call vorzeichenbox 1, (1.95+j)
  300.                call vorzeichenbox 1, (4.15+j)
  301.                call vorzeichenbox 1.2, (1.65+j)
  302.                call vorzeichenbox 1.2, (3.85+j)
  303.              end
  304.  
  305.            if zahl == 3 then
  306.              do
  307.                call vorzeichenbox 1, (1.95+j)
  308.                call vorzeichenbox 1, (4.15+j)
  309.                call vorzeichenbox 1.2, (1.65+j)
  310.                call vorzeichenbox 1.2, (3.85+j)
  311.                call vorzeichenbox 1.4, (2.05+j)
  312.                call vorzeichenbox 1.4, (4.25+j)
  313.              end
  314.  
  315.            if zahl == 4 then
  316.              do
  317.              call vorzeichenbox 1, (1.95+j)
  318.              call vorzeichenbox 1, (4.15+j)
  319.              call vorzeichenbox 1.2, (1.65+j)
  320.              call vorzeichenbox 1.2, (3.85+j)
  321.              call vorzeichenbox 1.4, (2.05+j)
  322.              call vorzeichenbox 1.4, (4.25+j)
  323.              call vorzeichenbox 1.6, (1.75+j)
  324.              call vorzeichenbox 1.6, (3.95+j)
  325.              end
  326.  
  327.            if zahl == 5 then
  328.              do
  329.              call vorzeichenbox 1, (1.95+j)
  330.              call vorzeichenbox 1, (4.15+j)
  331.              call vorzeichenbox 1.2, (1.65+j)
  332.              call vorzeichenbox 1.2, (3.85+j)
  333.              call vorzeichenbox 1.4, (2.05+j)
  334.              call vorzeichenbox 1.4, (4.25+j)
  335.              call vorzeichenbox 1.6, (1.